package com.lvmama.service.system;

import com.lvmama.common.result.Result;
import com.lvmama.pojo.base.Page;
import com.lvmama.pojo.dto.rhino.system.RoleDTO;
import com.lvmama.pojo.dto.rhino.system.RoleQueryDTO;
import com.lvmama.pojo.entity.rhino.system.Role;

import java.util.List;

public interface RoleService {


    /**
     * 查询角色
     * @param query
     * @return
     */
    Result<List<Role>> queryRoleList(RoleQueryDTO query);

    /**
     * 查询角色分页
     * @param query
     * @return
     */
    Result<Page<Role>> queryRolePage(RoleQueryDTO query);
    /**
     * 查询角色
     *
     * @param query 查询条件
     * @return 结果集
     */
    Result<List<Role>> queryRoleInfo(RoleQueryDTO query) ;

    /**
     * 通过id查询单个角色
     *
     * @param id id
     * @return 角色对象
     */
    Result<Role> queryRoleById(String id);
    /**
     * 通过id查询单个角色下的所有菜单
     *
     * @param roleId id
     * @return 角色对象
     */
    Result<Role> selectRoleMenusByRoleId(String roleId) ;

    /**
     * 更新角色
     *
     * @param roleDTO 数据传输对象
     * @return 影响的行数
     */
    Result<Integer> updateRoleByRoleDTO(RoleDTO roleDTO) ;

    /**
     * 保存角色
     *
     * @param roleDTO 数据传输对象
     * @return 影响的行数
     */
    Result<Integer> saveRoleByRoleDTO(RoleDTO roleDTO) ;

    /**
     * 通过id删除角色
     *
     * @param id
     * @return
     */
    Result<Boolean> deleteRoleById(String id);

}
